Field of the Invention
The present invention relates to an information processing apparatus on which a solid-state drive (SSD) is mounted, a method of controlling the same, and a storage medium.
Description of the Related Art
Generally, for image forming apparatuses, configuration is taken such that a hard disk drive (HDD) is mounted, and programs, image data, or the like, is stored in the HDD. Meanwhile, in recent years, increases in capacity and decreases in cost of solid-state drives (SSD) have advanced, and the spread of SSDs has advanced rapidly with a focus on mobile PCs. SSDs, compared to HDDs, have the advantages of not only being capable of high speed random access, but also having low consumption power, having high shock resistance, being light weight, and being space economical. In particular, initialization operation such as a spin up that is necessary in HDDs upon system activation is unnecessary with SSDs, and in addition to high speed data transfer, activation time of SSDs is significantly shortened. Furthermore, because SSDs do not have disk driving parts that are easily broken due to shock, SSDs are superior in not only shock resistance but also are superior in heat resistance. For these reasons, SSDs have been receiving attention as image forming apparatus storage devices.
However, there is an upper limit on the number of times that flash memories, which are the storage devices mounted in SSDs, are writable. For example, the number of times that an SLC (Single Level Cell) is writable is approximately one hundred thousand, and the number of times that an MLC (Multiple Level Cell) is writable is approximately ten thousand. Furthermore, due to process miniaturization of flash memories, the number of times that flash memories will be rewritable will have a tendency to decrease.
In order to deal with the restriction on the number of times that flash memory is writable, a flash memory controller mounted on an SSD distributes writing of data to data write destination areas by averaging so that a write frequency is not concentrated to a particular area in the flash memory. This technique is referred to as “wear leveling”. Furthermore, a technique known as an “interleave” in which a flash memory controller distributes data write destination areas to a plurality of flash memories is used. With such a technique, it is possible to lengthen the life span of flash memory i.e. the storage device.
Meanwhile, in image forming apparatuses, demand for a security guarantee with respect to data such as image data, and demand for privacy protection is very high, and there is demand that spool data and saved data recorded in storage be completely erasable. Techniques for performing a complete erasure of data to be erased in an HDD by eliminating a residual magnetism by overwriting, with dummy data, an area in which data to be erased is recorded a plurality of times has been proposed (for example, refer to Japanese Patent Laid-Open No. 2004-153516, and Japanese Patent Laid-Open No. 2006-023854).
With SSDs, unlike HDDs, it is possible to completely erase in a single rewrite the data to be erased. However, with normal write processing, even if an erasure of data is executed by address designation, due to the above-mentioned wear leveling, direct rewriting of the data to be erased cannot be performed. For this reason, in order to erase completely the data to be erased in the SSD, it is necessary to perform special write processing which supports a complete erasure.
However, in flash memories mounted in SSDs, due to one of their characteristics, erasure of data can only be performed in predetermined block units. For this reason, there is a problem in that, in a case where complete erasure of data stored in an SSD is performed, system capabilities are severely reduced due to overhead upon data erasure. For example, in a case where the size of the data that became unnecessary is smaller than block size of the flash memory mounted on the SSD, it is necessary to perform deletion processing of a block to be erased after having evacuated the data stored in the block to be erased other than the data to be erased to another block. Also, in a case where data is arranged to be distributed over a number of blocks due to an interleave being performed for a plurality of chips or banks, it is necessary to individually perform erasing processing for each block in which the data is distributively arranged in order to erase the unnecessary data.